/*
 * @Description:
 * @Author: william
 * @Date: 2025-07-08 10:15:54
 * @LastEditors: william
 * @LastEditTime: 2025-10-27 20:40:45
 */

// 设备型号
export const DeviceModel = {
  // 炒菜机
  CookingMachine: 1,
  // 油烟机
  RangeHood: 2,
  // 电子秤
  ElectronicScale: 3
}

// 设备业务状态
export const DeviceStatus = {
  // 错误
  Error: 0,
  // 炒菜中
  Cooking: 1,
  // 暂停
  Pause: 2,
  // 等待出菜
  WaitPlating: 3,
  // 正在出菜
  InPlating: 4,
  // 自动洗锅
  AutoWashPot: 5,
  // 手动洗锅
  ManualWashPot: 6,
  // 关机
  Shutdown: 7,
  // 手动炒菜
  ManualCooking: 8,
  // 初始化中
  Initializating: 9,
  // 复位中
  Resting: 10,
  // 升级中
  Upgrading: 11,
  // 空闲
  Idle: 255
}
// 设备连接状态
export const DeviceConnectStatus = {
  // 离线
  Offline: 0,
  // 在线
  Online: 1
}

// 设备外设类型
// 1-食材盒、2-粉料盒、3-液料盒、4-酱料盒、5-勾芡盒、6-加热器（火力）、7-锅铲
export const DevicePeripheralType = {
  // 食材盒
  FoodBox: 1,
  // 粉料盒
  PowderBox: 2,
  // 液料盒
  LiquidMaterialBox: 3,
  // 酱料盒
  SauceBox: 4,
  // 酱料盒
  GourdBox: 5,
  // 加热器
  Heater: 6,
  // 锅铲
  FryingSpatula: 7
}

/**
 * 设备信息
 */
export const deviceInfo = {
  sn: '', // 设备序列号
  name: '', // 设备名称
  model: '', // 设备型号
  brand: '', // 设备品牌
  bind: '', // 0-未绑定 1-已绑定
  status: '', // 设备状态：0-错误、1-炒菜中、2-暂停、3-等待出菜、4-正在出菜、5-自动洗锅、6-手动洗锅、7-关机、8-手动炒菜、255-空闲
  onlineStatus: 0, // 设备在线状态：0-离线、1-在线
  type: '', // 设备类型：1-炒菜机、2-油烟机、3-电子秤
  bindOil: '', // 绑定的油烟机SN
  bindElectronic: '', // 绑定的电子秤SN
  appId: '', // APP唯一标识
  ip: '',
  nickName: '',
  recipeId: '', // 菜谱ID
  peripheralList: [
    // 设备外设列表。包括：粉料盒、酱料盒、液料盒、勾芡盒、食材盒
    {
      name: '', // 外设名称，例如:食材盒1
      type: 0, // 外设类型，1-食材盒、2-粉料盒、3-液料盒、4-酱料盒、5-勾芡盒、6-加热器（火力）、7-锅铲
      tag: 0, // 外设序号，从1开始编号
      status: 0, // 启停状态：0-停用，1-启用
      control: 0, // 外设通信状态，0-异常，1-正常
      driverId: '', // 外设对应的电机驱动ID，HEX字符串，例如:2201
      ingredientName: '', // 调料名称，例如:盐
      ingredientCode: '', // 调料编码，例如:51501000
      ingredientRemain: 0, // 调料余量
      ratio: 0 // 调料投放标准系数
    }
  ],
  currentWorkPowerLevel: 0, // 设备当前功率等级，第几档
  currentWorkTemperature: 0, // 设备当前温度，摄氏度
  updateTime: 0, //	设备记录最新修改时间戳，单位毫秒
  limitCount: 0, // 每天限制烹饪的菜谱数量
  masterVersion: '', // 主控版本号
  firmware1Version: '' // 固件1版本号
}

// 调料投放消息体
export const seasoningItem = {
  driverId: '', // 外设对应的电机驱动ID，HEX字符串，例如:2201
  goal: 0 // 目标值，数字。含义和外设功能对应，可以是：g / ml
}

/**
 * 已绑定的设备列表
 */
export const stirFryDeviceList = {
  sn: '',
  name: '',
  model: '',
  brand: '',
  status: '',
  type: '',
  bindOil: '', // 绑定的油烟机SN
  bindElectronic: '', // 绑定的电子秤SN
  appId: '',
  ip: '',
  nickName: ''
}

/**
 * 查询到的油烟机列表
 */
export const cookerHoodDeviceList = {
  sn: '',
  name: '',
  model: '',
  brand: '',
  status: '',
  type: '',
  bindOil: '',
  bindElectronic: '',
  appId: ''
}

/**
 * 查询到的电子秤列表
 */
export const elecScaleDeviceList = {
  sn: '',
  name: '',
  model: '',
  brand: '',
  status: '',
  type: '',
  bindOil: '',
  bindElectronic: '',
  appId: ''
}

/**
 * 设备链接事件
 */
export const DeviceConnectEvent = {
  id: '', // UUID事件ID
  sn: '', // 设备序列号
  address: '', // 设备IP+端口
  type: '', // 类型，connected-连接，disconnected-断开连接
  reason: '', // 设备断开链接的原因，目前一般为空
  timestamp: 0 // 时间戳，毫秒
}
